package com.huang.domain;

import java.util.List;

//当前实体类代表的是一个页面，一个页面如果考虑到后期的通用性的问题，我们不能写死该页面存储的数据类型。

/*
pageBean的属性可以分为三种类型：
   1. 需要通过数据库查询：
           data: 数据
           count: 总条数

   2. 通过用户传递：
         current 当前页
         size: 一页的条数
   3. 需要通过计算:
        total: 总页数
        previous 上一页
        next ：下一页

 */
public class PageBean<T>{

    //页面的数据
   private  List<T> data;

    //总页数
   private  int total;

    //总记录数
   private int count;

   //首页
    private int first;

    //上一页
    private int previous;

    //当前页
    private int current;

    //下一页
    private int next;


    //页面的大小
    private int size;

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

    public List<T> getData() {
        return data;
    }

    public void setData(List<T> data) {
        this.data = data;
    }

    //总页数
    public int getTotal() {
        //总条数/页面的大小   3 10  = 4  3  9 = 3
        if(getCount()%getSize()==0){
            //可以整除
            total = getCount()/getSize();
        }else{
            total = getCount()/getSize()+1;
        }
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public int getFirst() {
        return 1;
    }

    public void setFirst(int first) {
        this.first = first;
    }

    public int getPrevious() {
        if(getCurrent()==1){//如果当前页是1，那么上一页也是1
            return 1;
        }else{
            previous =  getCurrent()-1;
        }
        return previous;
    }

    public void setPrevious(int previous) {
        this.previous = previous;
    }

    public int getCurrent() {
        return current;
    }

    public void setCurrent(int current) {
        this.current = current;
    }

    public int getNext() {
        if(getCurrent()==getTotal()){ //如果当前页已经等于末页
            return getTotal();
        }else{
            next = getCurrent()+1;
        }
        return next;
    }

    public void setNext(int next) {
        this.next = next;
    }
}
